package pers.cz.postgirl.config;

import pers.cz.jefconfig.config.JefConfiguration;

/**
 * @program: postgirl-client
 * @description: 系统参数
 * @author: Cheng Zhi
 * @create: 2024-05-01 21:32
 **/
public class SystemConfig implements SystemConfigMBean {

    private static SystemConfig instance = new SystemConfig();

    public static SystemConfig getInstance() {
        return instance;
    }

    public SystemConfig() {
        init();
    }

    private boolean debug = false;

    /**
     * 超时时间间隔，同一个案例可能有多个方法，如果遇到重新录制会产生新的文件，则老文件无法回收，造成资源浪费，
     * 因此设计了该参数，如果遇到重新录制，生成索引文件时首先判断同caseId+className+methodName索引文件的录制时间和当前时间做差，判断是否
     * 超过该参数，如果超过了则认为是重新录制，需要覆盖删除原来的索引文件。
     */
    private long timeout = 120L;

    @Override
    public boolean isDebug() {
        return debug;
    }

    @Override
    public boolean isTimeOut(long timestamp) {

        // 获取当前时间戳,毫秒
        long l = System.currentTimeMillis();
        return timestamp < l-(timeout * 1000);
    }


    private void init() {
        debug = JefConfiguration.getBoolean(SystemEnum.SYSTEM_DEBUG, false);
        timeout = JefConfiguration.getLong(SystemEnum.SYSTEM_LOCAL_FILE_TIMEOUT, 120L);
    }

}
